Sync from portable simd 2026 07 20#159582
Conversation
the `float-cmp` and `num-traits` libraries don't (yet) support f16. Turns out we didn't really need much from them, just the ulps check. I've adapted the ulps check from miri instead
relevant for the cranelift backend, possibly other cases/targets too
Fix pointer API to match what was stabilized
We can do swizzles for 24, 32, 48 and 64 byte vectors by stacking multiple TBL instructions. See https://godbolt.org/z/PE95nrqjj for a comparison of the generated assembly.
Optimize `swizzle_dyn` for AArch64 with N > 16
`From` impls were already provided for the normal AArch64 ACLE vector types, but not for the x2,x3,x4 tuples of ACLE vectors. Rectify that. Also provide impls for vectors of `f16`, as I noticed they were missing.
For symmetry with `Mask::first_set`
Add `Mask::last_set` method
…mpls Provide `From` impls for AArch64 ACLE tuple types.
Use `impl` restrictions over hand-sealed traits
Optimize `swizzle_dyn` for LoongArch64 with N is 16 or 32
run `f16` float tests
…nelift backend
…m-portable-simd-2026-07-20
|
|
|
|
This sync (specifically ignoring f16 tests) will help with rust-lang/rustc_codegen_cranelift#1675 |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
cc @rust-lang/miri |
This comment has been minimized.
This comment has been minimized.
|
This PR was contained in a rollup (#159622), which was unapproved. |
|
That's the test running with Miri's deliberately-imprecise float operations. But it's odd that it would start failing now. Probably the test is already latently buggy in main but this PR triggers the bad non-determinism. The fix should be to make bigger on Miri. |
|
Any special-casing of Miri in the standard library requires review. cc @rust-lang/miri |
|
@bors try jobs=x86_64-gnu-aux |
This comment has been minimized.
This comment has been minimized.
…, r=<try> Sync from portable simd 2026 07 20 try-job: x86_64-gnu-aux
|
@bors r=oli-obk |
…-2026-07-20, r=oli-obk Sync from portable simd 2026 07 20 r? @ghost feel free to `r+` once green
…-2026-07-20, r=oli-obk Sync from portable simd 2026 07 20 r? @ghost feel free to `r+` once green
Rollup of 12 pull requests Successful merges: - #159582 (Sync from portable simd 2026 07 20) - #158890 (Fix splat v0 mangling) - #159411 ([rustdoc] Correctly handle output options with --show-coverage) - #159647 (Remove `early_exit` closures) - #159656 (define a `Simd` type in `minicore`) - #156474 (Add paths for linked associated items) - #159211 (Fix debuginfo argument when invoking LLBC linker) - #159527 (Bring runtime symbols statics on par with foreign functions) - #159625 (Refactor is_opsem_inhabited) - #159652 (Remove `cfg(not(no_global_oom_handling))` from the `Drop` impl of `UniqueArcUninit`) - #159657 (Remove the blanket `#![cfg_attr(test, allow(unused))]` from bootstrap ) - #159663 (Add layout cycle hang regression test)
…-2026-07-20, r=oli-obk Sync from portable simd 2026 07 20 r? @ghost feel free to `r+` once green
Rollup of 13 pull requests Successful merges: - #159582 (Sync from portable simd 2026 07 20) - #158890 (Fix splat v0 mangling) - #159614 (debuginfo generation for unsafe binders) - #159647 (Remove `early_exit` closures) - #159656 (define a `Simd` type in `minicore`) - #156474 (Add paths for linked associated items) - #159211 (Fix debuginfo argument when invoking LLBC linker) - #159527 (Bring runtime symbols statics on par with foreign functions) - #159625 (Refactor is_opsem_inhabited) - #159629 (Add more splat rust-call regression tests) - #159652 (Remove `cfg(not(no_global_oom_handling))` from the `Drop` impl of `UniqueArcUninit`) - #159657 (Remove the blanket `#![cfg_attr(test, allow(unused))]` from bootstrap ) - #159663 (Add layout cycle hang regression test)
|
⌛ Testing commit e547ba4 with merge 1192fdc... Workflow: https://github.com/rust-lang/rust/actions/runs/29887627022 |
…, r=oli-obk Sync from portable simd 2026 07 20 r? @ghost feel free to `r+` once green
|
yielding to retrying the rollup @bors yield |
|
Auto build was cancelled. Cancelled workflows: The next pull request likely to be tested is #159697. |
Rollup of 13 pull requests Successful merges: - #159582 (Sync from portable simd 2026 07 20) - #158890 (Fix splat v0 mangling) - #159614 (debuginfo generation for unsafe binders) - #159647 (Remove `early_exit` closures) - #159656 (define a `Simd` type in `minicore`) - #156474 (Add paths for linked associated items) - #159211 (Fix debuginfo argument when invoking LLBC linker) - #159527 (Bring runtime symbols statics on par with foreign functions) - #159625 (Refactor is_opsem_inhabited) - #159629 (Add more splat rust-call regression tests) - #159652 (Remove `cfg(not(no_global_oom_handling))` from the `Drop` impl of `UniqueArcUninit`) - #159657 (Remove the blanket `#![cfg_attr(test, allow(unused))]` from bootstrap ) - #159663 (Add layout cycle hang regression test)
Rollup of 13 pull requests Successful merges: - rust-lang/rust#159582 (Sync from portable simd 2026 07 20) - rust-lang/rust#158890 (Fix splat v0 mangling) - rust-lang/rust#159614 (debuginfo generation for unsafe binders) - rust-lang/rust#159647 (Remove `early_exit` closures) - rust-lang/rust#159656 (define a `Simd` type in `minicore`) - rust-lang/rust#156474 (Add paths for linked associated items) - rust-lang/rust#159211 (Fix debuginfo argument when invoking LLBC linker) - rust-lang/rust#159527 (Bring runtime symbols statics on par with foreign functions) - rust-lang/rust#159625 (Refactor is_opsem_inhabited) - rust-lang/rust#159629 (Add more splat rust-call regression tests) - rust-lang/rust#159652 (Remove `cfg(not(no_global_oom_handling))` from the `Drop` impl of `UniqueArcUninit`) - rust-lang/rust#159657 (Remove the blanket `#![cfg_attr(test, allow(unused))]` from bootstrap ) - rust-lang/rust#159663 (Add layout cycle hang regression test)
View all comments
r? @ghost
feel free to
r+once green